From 0834dc50aa0209e45e51be37983edabb5370a9e9 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 29 Mar 2023 06:26:03 +0200 Subject: [PATCH] filechooser: Select via action Don't fudge around poking through the listview, trying to get a model and selecting it directly. Instead, use the proper way and activate the "listitem.select" action. --- gtk/gtkfilechoosercell.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/gtk/gtkfilechoosercell.c b/gtk/gtkfilechoosercell.c index 3e02d28302..8173bcb1d7 100644 --- a/gtk/gtkfilechoosercell.c +++ b/gtk/gtkfilechoosercell.c @@ -69,14 +69,12 @@ popup_menu (GtkFileChooserCell *self, double y) { GtkWidget *widget = GTK_WIDGET (self); - GtkSelectionModel *model; GtkWidget *impl; graphene_point_t p; - impl = gtk_widget_get_ancestor (widget, GTK_TYPE_FILE_CHOOSER_WIDGET); + gtk_widget_activate_action (GTK_WIDGET (self), "listitem.select", "(bb)", FALSE, FALSE); - model = gtk_file_chooser_widget_get_selection_model (GTK_FILE_CHOOSER_WIDGET (impl)); - gtk_selection_model_select_item (model, self->position, TRUE); + impl = gtk_widget_get_ancestor (widget, GTK_TYPE_FILE_CHOOSER_WIDGET); if (!gtk_widget_compute_point (widget, GTK_WIDGET (impl), &GRAPHENE_POINT_INIT (x, y), &p)) @@ -129,10 +127,9 @@ drag_prepare_cb (GtkDragSource *source, impl = GTK_FILE_CHOOSER_WIDGET (gtk_widget_get_ancestor (GTK_WIDGET (self), GTK_TYPE_FILE_CHOOSER_WIDGET)); - if (!self->selected) + if (self->list_item && !gtk_list_item_get_selected (self->list_item)) { - gtk_selection_model_select_item (gtk_file_chooser_widget_get_selection_model (impl), - self->position, TRUE); + gtk_widget_activate_action (GTK_WIDGET (self), "listitem.select", "(bb)", FALSE, FALSE); } selection = gtk_file_chooser_widget_get_selected_files (impl); -- 2.30.2